Файл: TextTransformer.txt
Дата: 10.04.2014
1:
2:
3:
4:
5: ИНИЦИАЛИЗАЦИЯ
6: ВЫПОЛНЕНИЕ
7:
8:
9:
10: функция ВЫВОД строка
11: список сцепить РЕЗУЛЬТИРУЮЩИЙ_СПИСОК $ (строка коды $результат [строка] '? )
12: >[строка]
13: возврат
14:
15: функция ЗаменитьСпецсимволы строка
16: память локальный рез длина_строки позиция символ
17:
18: присвоить рез '' позиция 1
19: строка размер длина_строки [строка]
20: пока [позиция] <= [длина_строки]
21: строка взять символ [строка] [позиция]
22: список отобразить символ [символ] [СПЕЦ_ВХОД] [СПЕЦ_ВЫХОД] [символ]
23: строка сцепить рез $ [символ]
24: увеличить позиция
25: цикл
26: строка символы рез $
27:
28: присвоить $результат [рез]
29: возврат
30:
31:
32:
33: функция 'К верхнему регистру'
34: для [ИСХОДНЫЙ_СПИСОК]
35: строка символы СТРОКА [$ОбъектЦикла]
36: строка прописные СТРОКА $
37: ВЫВОД [СТРОКА]
38: следующий
39: возврат
40:
41: функция 'К нижнему регистру'
42: для [ИСХОДНЫЙ_СПИСОК]
43: строка символы СТРОКА [$ОбъектЦикла]
44: строка строчные СТРОКА $
45: ВЫВОД [СТРОКА]
46: следующий
47: возврат
48:
49: функция 'Строки с большой буквы'
50: память локальный первая_буква
51: для [ИСХОДНЫЙ_СПИСОК]
52: строка символы СТРОКА [$ОбъектЦикла]
53: строка взять первая_буква [СТРОКА] 1
54: строка прописные первая_буква $
55: строка присвоить СТРОКА $ 1 [первая_буква]
56: ВЫВОД [СТРОКА]
57: следующий
58: возврат
59:
60: функция 'Добавить префикс'
61: ввести переменная ПОДСТРОКА 'Введите префикс:' ';-;*;?'
62: если [$УспешныйВвод]
63: для [ИСХОДНЫЙ_СПИСОК]
64: строка символы СТРОКА [$ОбъектЦикла]
65: ВЫВОД "[ПОДСТРОКА][СТРОКА]"
66: следующий
67: конец
68: возврат
69:
70: функция 'Добавить суффикс'
71: ввести переменная ПОДСТРОКА 'Введите суффикс:' ';.;<точка с запятой>'
72: если [$УспешныйВвод]
73: если [ПОДСТРОКА] == '<точка с запятой>'
74: присвоить ПОДСТРОКА ';'
75: конец
76: для [ИСХОДНЫЙ_СПИСОК]
77: строка символы СТРОКА [$ОбъектЦикла]
78: ВЫВОД "[СТРОКА][ПОДСТРОКА]"
79: следующий
80: конец
81: возврат
82:
83: функция 'Обрамить строку'
84: память локальный префикс суффикс
85: присвоить префикс '' суффикс ''
86: ввести переменная ПОДСТРОКА 'Введите символы обрамления:' ';"";<одинарные кавычки>;();[];{};<>;**'
87: если [$УспешныйВвод]
88: если [ПОДСТРОКА] == '<одинарные кавычки>'
89: присвоить ПОДСТРОКА "''"
90: конец
91: если (строка размер $результат [ПОДСТРОКА] ) >= 2
92: строка взять префикс [ПОДСТРОКА] 1
93: строка взять суффикс [ПОДСТРОКА] 2
94: конец
95: конец
96:
97: для [ИСХОДНЫЙ_СПИСОК]
98: строка символы СТРОКА [$ОбъектЦикла]
99: ВЫВОД "[префикс][СТРОКА][суффикс]"
100: следующий
101: возврат
102:
103: функция 'Заключить в тэги HTML/XML'
104: ввести переменная ПОДСТРОКА 'Введите тэг:' 'p;b;i;u;td;tr'
105: если [$УспешныйВвод]
106: если [ПОДСТРОКА] != ''
107: для [ИСХОДНЫЙ_СПИСОК]
108: строка символы СТРОКА [$ОбъектЦикла]
109: ВЫВОД "<[ПОДСТРОКА]>[СТРОКА]</[ПОДСТРОКА]>"
110: следующий
111: конец
112: конец
113: возврат
114:
115: функция 'Вставить пустые строки'
116: память локальный количество
117: ввести переменная количество 'Введите количество пустых строк:' '1;2;3;4;5;6;7;8;9;10'
118: для [ИСХОДНЫЙ_СПИСОК]
119: строка символы СТРОКА [$ОбъектЦикла]
120: ВЫВОД [СТРОКА]
121: для (список сгенерить $результат 1 [количество] )
122: ВЫВОД ''
123: следующий
124: следующий
125: возврат
126:
127: функция 'Сгенерить пустые строки'
128: память локальный количество
129: ввести переменная количество 'Введите количество пустых строк:' '1;2;3;4;5;6;7;8;9;10;20;30;40;50'
130: для [ИСХОДНЫЙ_СПИСОК]
131: строка символы СТРОКА [$ОбъектЦикла]
132: ВЫВОД [СТРОКА]
133: следующий
134: для (список сгенерить $результат 1 [количество] )
135: ВЫВОД ''
136: следующий
137: возврат
138:
139: функция 'Вставить пробелы слева'
140: память локальный количество префикс
141: ввести переменная количество 'Введите количество пробелов:' '1;2;3;4;5;6;7;8;9;10'
142: строка реплицировать префикс ' ' [количество]
143: для [ИСХОДНЫЙ_СПИСОК]
144: строка символы СТРОКА [$ОбъектЦикла]
145: ВЫВОД "[префикс][СТРОКА]"
146: следующий
147: возврат
148:
149: функция 'Удалить символы'
150: ввести переменная ПОДСТРОКА 'Введите символы, котрые нужно удалить:' [МНОЖ_ФИЛЬТРОВ]
151: если [$УспешныйВвод]
152: для [ИСХОДНЫЙ_СПИСОК]
153: строка символы СТРОКА [$ОбъектЦикла]
154: ВЫВОД (строка заменитьСимволы $результат [СТРОКА] [ПОДСТРОКА] '' )
155: следующий
156: конец
157: возврат
158:
159: функция 'Оставить только числа'
160: для [ИСХОДНЫЙ_СПИСОК]
161: строка символы СТРОКА [$ОбъектЦикла]
162: ВЫВОД (строка фильтр $результат [СТРОКА] '0123456789+-.,' )
163: следующий
164: возврат
165:
166: функция 'Удалить пустые строки'
167: для [ИСХОДНЫЙ_СПИСОК]
168: строка символы СТРОКА [$ОбъектЦикла]
169: если (строка отсечьПробелы $результат [СТРОКА] ) != ''
170: ВЫВОД [СТРОКА]
171: конец
172: следующий
173: возврат
174:
175: функция 'Удалить обрамляющие пробелы'
176: для [ИСХОДНЫЙ_СПИСОК]
177: строка символы СТРОКА [$ОбъектЦикла]
178: строка отсечьПробелы СТРОКА $
179: ВЫВОД [СТРОКА]
180: следующий
181: возврат
182:
183:
184: функция 'Вставить пробел после каждого символа (разреживание)'
185: память локальный позиция длина_строки РЕЗ
186: для [ИСХОДНЫЙ_СПИСОК]
187: строка символы СТРОКА [$ОбъектЦикла]
188: строка размер длина_строки [СТРОКА]
189: присвоить позиция 1 РЕЗ ''
190: пока [позиция] <= [длина_строки]
191: строка сцепить РЕЗ $ (строка взять $результат [СТРОКА] [позиция] ) ' '
192: увеличить позиция
193: цикл
194: ВЫВОД [РЕЗ]
195: следующий
196: возврат
197:
198: функция 'Нумерация строк'
199: для [ИСХОДНЫЙ_СПИСОК]
200: строка символы СТРОКА [$ОбъектЦикла]
201: ВЫВОД "[$НомерИтерации][СТРОКА]"
202: следующий
203: возврат
204:
205: функция 'Инверсия строк'
206: для [ИСХОДНЫЙ_СПИСОК]
207: строка символы СТРОКА [$ОбъектЦикла]
208: строка инвертировать СТРОКА $
209: ВЫВОД [СТРОКА]
210: следующий
211: возврат
212:
213: функция 'Упорядочить строки'
214: для (список упорядочить $результат [ИСХОДНЫЙ_СПИСОК] )
215: строка символы СТРОКА [$ОбъектЦикла]
216: ВЫВОД [СТРОКА]
217: следующий
218: возврат
219:
220: функция 'Русский текст на английской клавиатуре'
221: память локальный позиция длина_строки символ РЕЗ
222: для [ИСХОДНЫЙ_СПИСОК]
223: строка символы СТРОКА [$ОбъектЦикла]
224: строка размер длина_строки [СТРОКА]
225: присвоить позиция 1 РЕЗ ''
226: пока [позиция] <= [длина_строки]
227: строка взять символ [СТРОКА] [позиция]
228: список отобразить символ [символ] [МНОЖ_РУССКИЕ_ВСЕ] [МНОЖ_РУС_ПО_АНГ_ВСЕ] [символ]
229: строка сцепить РЕЗ $ [символ]
230: увеличить позиция
231: цикл
232: ВЫВОД [РЕЗ]
233: следующий
234: возврат
235:
236: функция 'В другой раскладке клавиатуры'
237: для [ИСХОДНЫЙ_СПИСОК]
238: строка символы СТРОКА [$ОбъектЦикла]
239: строка заменитьСимволы СТРОКА $ [СТР_РУС_АНГ_ВСЕ] [СТР_РУС_АНГ_ВСЕ_В_ДРУГОЙ_РАСКЛАДКЕ_КЛАВИАТУРЫ]
240: ВЫВОД [СТРОКА]
241: следующий
242: возврат
243:
244: функция 'Преобразование текста в HTML страницу'
245: ВЫВОД '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">'
246: ВЫВОД '<html><head>'
247: ВЫВОД '<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">'
248: ВЫВОД '<title>Текст</title>'
249: ВЫВОД '</head><body>'
250: для [ИСХОДНЫЙ_СПИСОК]
251: строка символы СТРОКА [$ОбъектЦикла]
252: присвоить СТРОКА (ЗаменитьСпецсимволы [СТРОКА] )
253: строка сцепить СТРОКА <br> [СТРОКА]
254: ВЫВОД [СТРОКА]
255: следующий
256: ВЫВОД '</body></html>'
257: возврат
258:
259: функция 'Разбить на строки'
260: память локальный позиция
261: ввести переменная ПОДСТРОКА 'Введите символы - разделители:' '.;,;<точка с запятой>'
262: если [$УспешныйВвод]
263: если [ПОДСТРОКА] != ''
264: если [ПОДСТРОКА] == '<точка с запятой>'
265: присвоить ПОДСТРОКА ';'
266: конец
267: для [ИСХОДНЫЙ_СПИСОК]
268: строка символы СТРОКА [$ОбъектЦикла]
269: пока [СТРОКА] != ''
270: строка найтиСимволы позиция [СТРОКА] [ПОДСТРОКА]
271: если [позиция] > 0
272: ВЫВОД (строка копировать $результат [СТРОКА] 1 [позиция] )
273: строка удалить СТРОКА $ 1 [позиция]
274: иначе
275: ВЫВОД [СТРОКА]
276: присвоить СТРОКА ''
277: конец
278: цикл
279: следующий
280: конец
281: конец
282: возврат
283:
284: функция 'Разбить на слова'
285: для [ИСХОДНЫЙ_СПИСОК]
286: строка символы СТРОКА [$ОбъектЦикла]
287: строка кСпискуСлов СТРОКА $
288: для [СТРОКА]
289: ВЫВОД [$ОбъектЦикла]
290: следующий
291: следующий
292: возврат
293:
294: функция 'Разложить список КОНЦЕПТ'
295: для [ИСХОДНЫЙ_СПИСОК]
296: строка символы СТРОКА [$ОбъектЦикла]
297: для [СТРОКА]
298: ВЫВОД [$ОбъектЦикла]
299: следующий
300: следующий
301: возврат
302:
303: функция 'Собрать в список КОНЦЕПТ'
304: память локальный список
305: присвоить список {}
306: для [ИСХОДНЫЙ_СПИСОК]
307: строка символы СТРОКА [$ОбъектЦикла]
308: список сцепить список $ [СТРОКА]
309: следующий
310: ВЫВОД [список]
311: возврат
312:
313:
314:
315: функция ИНИЦИАЛИЗАЦИЯ
316:
317: строка коды ТЗ ';'
318: строка коды РЕШ '?
319: присвоить СПЕЦ_ВХОД '>;<;";&; ;? СПЕЦ_ВЫХОД ">[ТЗ];<[ТЗ];"[ТЗ];&[ТЗ]; [ТЗ];[РЕШ]"
320:
321: присвоить РЕЗУЛЬТИРУЮЩИЙ_СПИСОК 'строка 1;строка 2;строка 3'
322: список сцепить МЕНЮ_КОМАНД \
323: '*** Преобразование символов текста ***' \
324: ' К верхнему регистру; К нижнему регистру' \
325: ' Строки с большой буквы' \
326: ' В другой раскладке клавиатуры' ' Русский текст на английской клавиатуре' \
327: '*** Добавление в начало и конец строк ***' \
328: ' Добавить префикс; Добавить суффикс; Обрамить строку; Заключить в тэги HTML/XML; Нумерация строк' \
329: ' Вставить пробелы слева' \
330: '*** Действия со строками текста ***' \
331: ' Вставить пустые строки' \
332: ' Упорядочить строки' \
333: ' Сгенерить пустые строки' \
334: '*** Удаление символов из текста ***' \
335: ' Удалить символы; Оставить только числа' \
336: ' Удалить пустые строки; Удалить обрамляющие пробелы' \
337: '*** Другие действия ***' \
338: ' Вставить пробел после каждого символа (разреживание)' \
339: ' Инверсия строк' \
340: ' Преобразование текста в HTML страницу' \
341: ' Разбить на строки; Разбить на слова' \
342: '*** Действия для КОНЦЕПТ ***' \
343: ' Разложить список КОНЦЕПТ; Собрать в список КОНЦЕПТ'
344:
345:
346:
347: присвоить СТР_РУССКИЕ_СТРОЧНЫЕ абвгдежзийклмнопрстуфхцчшщьъыэюя
348: строка прописные СТР_РУССКИЕ_ПРОПИСНЫЕ [СТР_РУССКИЕ_СТРОЧНЫЕ]
349: присвоить СТР_РУССКИЕ_ВСЕ "[СТР_РУССКИЕ_ПРОПИСНЫЕ][СТР_РУССКИЕ_СТРОЧНЫЕ]"
350: строка кСписку МНОЖ_РУССКИЕ_ВСЕ [СТР_РУССКИЕ_ВСЕ]
351:
352: присвоить СТР_АНГЛИЙСКИЕ_СТРОЧНЫЕ abcdefghijklmnopqrstuvwxyz
353: строка прописные СТР_АНГЛИЙСКИЕ_ПРОПИСНЫЕ [СТР_АНГЛИЙСКИЕ_СТРОЧНЫЕ]
354: присвоить СТР_АНГЛИЙСКИЕ_ВСЕ "[СТР_АНГЛИЙСКИЕ_ПРОПИСНЫЕ][СТР_АНГЛИЙСКИЕ_СТРОЧНЫЕ]"
355: строка кСписку МНОЖ_АНГЛИЙСКИЕ_ВСЕ [СТР_АНГЛИЙСКИЕ_ВСЕ]
356:
357: присвоить СТР_ЦИФРЫ 0123456789
358: строка сцепить СТР_ЗНАКИ_ПРЕПИНАНИЯ ".,:?!-'" '"'
359: присвоить СТР_СКОБКИ '()[]{}<>'
360:
361: присвоить СТР_РУС_СТРО_В_АНГ f,dult;pbqrkvyjghcnea[wxiom]s'.z
362: присвоить СТР_РУС_ПРОП_В_АНГ F,DULT;PBQRKVYJGHCNEA[WXIOM]S'.Z
363: присвоить СТР_АНГ_СТРО_В_РУС фисвуапршолдьтщзйкыегмцчня
364: присвоить СТР_АНГ_ПРОП_В_РУС ФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯ
365:
366: присвоить СТР_РУС_АНГ_ВСЕ "[СТР_РУССКИЕ_ВСЕ][СТР_АНГЛИЙСКИЕ_ВСЕ]"
367: присвоить СТР_РУС_АНГ_ВСЕ_В_ДРУГОЙ_РАСКЛАДКЕ_КЛАВИАТУРЫ "[СТР_РУС_ПРОП_В_АНГ][СТР_РУС_СТРО_В_АНГ][СТР_АНГ_ПРОП_В_РУС][СТР_АНГ_СТРО_В_РУС]"
368:
369: присвоить МНОЖ_РУС_ПО_АНГ_СТРОЧНЫЕ a;b;v;g;d;e;zh;z;i;j;k;l;m;n;o;p;r;s;t;u;f;h;c;ch;sh;shch;;;y;e;ju;ja
370: строка прописные МНОЖ_РУС_ПО_АНГ_ПРОПИСНЫЕ [МНОЖ_РУС_ПО_АНГ_СТРОЧНЫЕ]
371: список сцепить МНОЖ_РУС_ПО_АНГ_ВСЕ [МНОЖ_РУС_ПО_АНГ_ПРОПИСНЫЕ] [МНОЖ_РУС_ПО_АНГ_СТРОЧНЫЕ]
372:
373: присвоить МНОЖ_ФИЛЬТРОВ "[СТР_РУССКИЕ_СТРОЧНЫЕ];[СТР_АНГЛИЙСКИЕ_СТРОЧНЫЕ];[СТР_ЦИФРЫ];[СТР_РУССКИЕ_ПРОПИСНЫЕ];[СТР_АНГЛИЙСКИЕ_ПРОПИСНЫЕ];[СТР_ЗНАКИ_ПРЕПИНАНИЯ];[СТР_СКОБКИ]"
374:
375: возврат
376:
377:
378:
379: функция ВЫПОЛНЕНИЕ
380:
381: присвоить НОМЕР_ШАГА 0
382: >
383: >Протокол
384: >========
385: пока [$Истина]
386: ввести текст ИСХОДНЫЙ_СПИСОК 'Введите исходный текст для обработки (ОТМЕНА - для завершения работы программы):' [РЕЗУЛЬТИРУЮЩИЙ_СПИСОК]
387: если [$УспешныйВвод]
388: если [НОМЕР_ШАГА] = 0
389: >
390: >*** Исходный текст ***
391: для [ИСХОДНЫЙ_СПИСОК]
392: >[$ОбъектЦикла]
393: следующий
394: конец
395: ввести меню1 ДЕЙСТВИЕ 'Выберите действие:' [МЕНЮ_КОМАНД]
396: если [$УспешныйВвод]
397: строка отсечьПробелы ДЕЙСТВИЕ $
398: если (строка взять $результат [ДЕЙСТВИЕ] 1 ) != '*'
399: увеличить НОМЕР_ШАГА
400: >
401: >*** Шаг [НОМЕР_ШАГА]. [ДЕЙСТВИЕ] ***
402: присвоить РЕЗУЛЬТИРУЮЩИЙ_СПИСОК {}
403: вызвать [ДЕЙСТВИЕ]
404: конец
405: конец
406: иначе
407: СТОП
408: конец
409: цикл
410:
411: возврат